use std::mem;

fn analyze_slice(slice: &[i32]) {
    println!("first element of the slice: {}",slice[0]);
    println!("the slice has {} elements",slice.len());
}

pub fn example() {
    //定长数组
    let xs: [i32;5] = [1,2,3,4,5];

    //所有元素均可初始化为相同的值
    let ys: [i32;500] = [0;500];

    // 数组是在栈中分配的
    //计算字节数
    println!("array occupies {} bytes", mem::size_of_val(&xs));

    // 数组可以自动被借用成为 slice
    //println!("borrow the whole array as a slice");
    //analyze_slice(&xs);

    // slice 可以指向数组的一部分
    println!("borrow a section of the array as a slice");
    analyze_slice(&ys[1 .. 4]);
    analyze_slice(&xs[1 .. 3]);
}